// pages/login/login.js - 账号密码登录页面逻辑
Page({
  data: {
    account: '',        // 账号输入值
    password: '',       // 密码输入值
    canLogin: false,    // 登录按钮是否可用
    loading: false,     // 加载状态
    showPwd: false      // 是否显示密码明文
  },

  onLoad: function(options) {
    // 页面加载时检查本地是否有token
    const token = wx.getStorageSync('token');
    if (token) {
      // 已有token，跳转到首页
      wx.switchTab({
        url: '/pages/index/index'
      });
      return;
    }
  },

  // 账号输入事件处理
  onAccountInput: function(e) {
    this.setData({
      account: e.detail.value
    });
    // 检查登录按钮状态
    this.checkLoginStatus();
  },

  // 密码输入事件处理
  onPasswordInput: function(e) {
    this.setData({
      password: e.detail.value
    });
    // 检查登录按钮状态
    this.checkLoginStatus();
  },

  // 检查登录按钮是否可用
  checkLoginStatus: function() {
    const { account, password } = this.data;
    // 账号和密码都不为空时，登录按钮可用
    this.setData({
      canLogin: account && password
    });
  },

    // 登录按钮点击事件
  onLogin: function() {
    if (!this.data.canLogin) return;
    
    this.setData({ loading: true });
    
    // 获取微信登录凭证code
    wx.login({
      success: (loginRes) => {
        if (loginRes.code) {
          // 发送登录请求，包含code、username和password
          wx.request({
            url: 'http://localhost:8080/api/wechat/bind',
            method: 'POST',
            data: {
              code: loginRes.code,
              username: this.data.account,
              password: this.data.password
            },
            success: (result) => {
              if (result.data.code === 200) {
                if (result.data.data.token!=null) {
                  // 保存token并跳转到首页
                  wx.setStorageSync('token', result.data.data.token);
                  wx.setStorageSync('userId', result.data.data.userId);
                  this.setData({
                    token: result.data.data.token
                  });
                  wx.switchTab({
                    url: '/pages/index/index'
                  });
                } else {
                  wx.showToast({
                    title: result.data.message || '无token',
                    icon: 'none'
                  });
                }
              } else {
                // 登录失败
                wx.showToast({
                  title: result.data.message || '登录失败',
                  icon: 'none'
                });
              }
            },
            fail: () => {
              // 网络请求失败
              wx.showToast({
                title: '网络请求失败',
                icon: 'none'
              });
            },
            complete: () => {
              this.setData({ loading: false });
            }
          });
        } else {
          // 获取code失败
          wx.showToast({
            title: '获取登录凭证失败',
            icon: 'none'
          });
          this.setData({ loading: false });
        }
      },
      fail: () => {
        // 登录调用失败
        wx.showToast({
          title: '登录调用失败',
          icon: 'none'
        });
        this.setData({ loading: false });
      }
    });
  },

  // 切换密码显示状态
  toggleShowPwd() {
    this.setData({
      showPwd: !this.data.showPwd
    });
  }
});
